package com.xifin.endpoints.soap;

import org.springframework.ws.server.endpoint.annotation.Endpoint;
import org.springframework.ws.server.endpoint.annotation.PayloadRoot;
import org.springframework.ws.server.endpoint.annotation.RequestPayload;
import org.springframework.ws.server.endpoint.annotation.ResponsePayload;

import com.xifin.endpoints.AbstractPatientDemoEndpoint;
import com.xifin.dao.jpa.exception.DataValidationException;
import com.xifin.dao.exception.XifinDataNotFoundException;
import com.xifin.schema.patientdemo.GetPatientDemoRequest;
import com.xifin.schema.patientdemo.GetPatientDemoResponse;
import com.xifin.schema.patientdemo.GetPatientEmailRequest;
import com.xifin.schema.patientdemo.GetPatientEmailResponse;
import com.xifin.schema.patientdemo.UpdatePatientContactInfoRequest;
import com.xifin.schema.patientdemo.UpdatePatientContactInfoRespone;
import com.xifin.schema.patientdemo.UpdatePatientDemoEmailRequest;
import com.xifin.schema.patientdemo.UpdatePatientDemoEmailResponse;

/**
 * Created by IntelliJ IDEA.
 * User: NChava
 * Date: Feb 7, 2011
 * Time: 5:00:59 PM
 * To change this template use File | Settings | File Templates.
 */
@Endpoint
public class PatientDemoMarshallingEndpoint extends AbstractPatientDemoEndpoint {

    /**
     * get Accession based on accession Id
     *
     * @param getPatientDemoRequest GetPatientDemoRequest
     * @return GetPatientDemoResponse
     * @throws XifinDataNotFoundException XifinDataNotFoundException
     */

    @PayloadRoot(localPart = "GetPatientDemoRequest", namespace = "http://www.xifin.com/schema/patientDemo")
    public
    @ResponsePayload
    GetPatientDemoResponse getPatientDemo(@RequestPayload GetPatientDemoRequest getPatientDemoRequest) throws  XifinDataNotFoundException {
        return super.getPatientDemo(getPatientDemoRequest);
    }
    
    @PayloadRoot(localPart = "GetPatientEmailRequest", namespace = "http://www.xifin.com/schema/patientDemo")
    public
    @ResponsePayload
    GetPatientEmailResponse getPatientEmailByPatientId(@RequestPayload GetPatientEmailRequest getPatientEmailRequest) throws  XifinDataNotFoundException {
        return super.getPatientEmailByPatientId(getPatientEmailRequest);
    }
    
    @PayloadRoot(localPart = "UpdatePatientDemoEmailRequest", namespace = "http://www.xifin.com/schema/patientDemo")
    public
    @ResponsePayload
    UpdatePatientDemoEmailResponse updatePatientDemoEmailByPatientId(@RequestPayload UpdatePatientDemoEmailRequest updatePatientEmailRequest) throws  XifinDataNotFoundException, DataValidationException {
        return super.updatePatientDemoEmailByPatientId(updatePatientEmailRequest);
    }
    
    @PayloadRoot(localPart = "UpdatePatientContactInfoRequest", namespace = "http://www.xifin.com/schema/patientDemo")
    public
    @ResponsePayload
    UpdatePatientContactInfoRespone updatePatientInfomation(@RequestPayload UpdatePatientContactInfoRequest updatePatientInfomationRequest) throws  XifinDataNotFoundException, DataValidationException {
        return super.updatePatientContactInfo(updatePatientInfomationRequest);
    }
    
    
}
